#include "File.h"

#include <iostream>
#include <stdio.h>

using std::ios;
using std::ifstream;
using std::cout;
using std::endl;

/********************************************************************************************/
File::File(string name)
{
	this->name = name;
}
/********************************************************************************************/
File::~File()
{
	
}
/********************************************************************************************/
bool File::createFile(void)
{
	bool control;
	ofstream fileAux;
	fileAux.open(name.c_str());
	control = fdFile.is_open();
	fileAux.close();
	return control;
}
/********************************************************************************************/
bool File::openFile(void)
{
	fdFile.open(name.c_str(), ios::binary | ios::in | ios::out );
	return fdFile.is_open();
}
/********************************************************************************************/
void File::closeFile(void)
{
	if( fdFile.is_open() )
		fdFile.close();
}
/********************************************************************************************/
bool File::empty(void)
{
	int posInit;
	posInit = fdFile.tellg();
	
	fdFile.seekg (posInit, ios::end); //voy al final del archivo

	if ( fdFile.tellg() > 0 )
	{
		fdFile.seekg (posInit, ios::beg); //vuelvo a la posicion inicial
		return false;
	}
	else
		return true;
}
/********************************************************************************************/
bool File::readLine(void)
{
	static int d;
	char* bufferTmp = new char[BUFFER_SIZE + 1];
	memset( bufferTmp, 0, BUFFER_SIZE + 1 );
	fdFile.get( bufferTmp, BUFFER_SIZE );

	buffer += bufferTmp;
	delete[] bufferTmp;
	
	//cout << buffer <<endl;
	
	if ( fdFile.eof() )
	{
	//	cout << "Fin de archivo"<<endl; // enviar a la barra de estado
		return true;
	}
	return false;
}
/********************************************************************************************/
long File::size(void)
{
	long size;

	ifstream is;
	is.open (name.c_str(), ios::binary );

	is.seekg (0, ios::end);
	size = is.tellg();
	is.seekg (0, ios::beg);
	is.close();

	return size;
}
/********************************************************************************************/
bool File::removeFile(void)
{
	return( remove( name.c_str() ) != 0 );
}
/********************************************************************************************/
int File::renameFile(string newName)
{
	return rename( name.c_str(), newName.c_str() );
}
/********************************************************************************************/
